Create Rules
curl --request POST \
--url https://api.sophra.org/api/nous/adapt/rules \
--header 'Content-Type: application/json' \
--data '
"{\r\n \"rules\": [\r\n {\r\n \"name\": \"{{rules_0_name}}\",\r\n \"description\": \"{{rules_0_description}}\",\r\n \"type\": \"{{rules_0_type}}\",\r\n \"conditions\": {\r\n \"metric\": \"{{rules_0_conditions_metric}}\",\r\n \"threshold\": {{rules_0_conditions_threshold}},\r\n \"operator\": \"{{rules_0_conditions_operator}}\",\r\n \"windowSize\": \"{{rules_0_conditions_windowSize}}\"\r\n },\r\n \"actions\": {\r\n \"type\": \"{{rules_0_actions_type}}\",\r\n \"parameters\": {\r\n \"cache_ttl\": {{rules_0_actions_parameters_cache_ttl}},\r\n \"max_results\": {{rules_0_actions_parameters_max_results}},\r\n \"use_fallback\": {{rules_0_actions_parameters_use_fallback}}\r\n }\r\n },\r\n \"priority\": \"{{rules_0_priority}}\",\r\n \"enabled\": {{rules_0_enabled}}\r\n },\r\n {\r\n \"name\": \"{{rules_1_name}}\",\r\n \"description\": \"{{rules_1_description}}\",\r\n \"type\": \"{{rules_1_type}}\",\r\n \"conditions\": {\r\n \"metric\": \"{{rules_1_conditions_metric}}\",\r\n \"threshold\": {{rules_1_conditions_threshold}},\r\n \"operator\": \"{{rules_1_conditions_operator}}\",\r\n \"consecutive_periods\": {{rules_1_conditions_consecutive_periods}}\r\n },\r\n \"actions\": {\r\n \"type\": \"{{rules_1_actions_type}}\",\r\n \"parameters\": {\r\n \"boost_recent\": {{rules_1_actions_parameters_boost_recent}},\r\n \"diversity_weight\": {{rules_1_actions_parameters_diversity_weight}},\r\n \"relevance_threshold\": {{rules_1_actions_parameters_relevance_threshold}}\r\n }\r\n },\r\n \"priority\": \"{{rules_1_priority}}\",\r\n \"enabled\": {{rules_1_enabled}}\r\n }\r\n ]\r\n}"
'import requests
url = "https://api.sophra.org/api/nous/adapt/rules"
payload = "{
\"rules\": [
{
\"name\": \"{{rules_0_name}}\",
\"description\": \"{{rules_0_description}}\",
\"type\": \"{{rules_0_type}}\",
\"conditions\": {
\"metric\": \"{{rules_0_conditions_metric}}\",
\"threshold\": {{rules_0_conditions_threshold}},
\"operator\": \"{{rules_0_conditions_operator}}\",
\"windowSize\": \"{{rules_0_conditions_windowSize}}\"
},
\"actions\": {
\"type\": \"{{rules_0_actions_type}}\",
\"parameters\": {
\"cache_ttl\": {{rules_0_actions_parameters_cache_ttl}},
\"max_results\": {{rules_0_actions_parameters_max_results}},
\"use_fallback\": {{rules_0_actions_parameters_use_fallback}}
}
},
\"priority\": \"{{rules_0_priority}}\",
\"enabled\": {{rules_0_enabled}}
},
{
\"name\": \"{{rules_1_name}}\",
\"description\": \"{{rules_1_description}}\",
\"type\": \"{{rules_1_type}}\",
\"conditions\": {
\"metric\": \"{{rules_1_conditions_metric}}\",
\"threshold\": {{rules_1_conditions_threshold}},
\"operator\": \"{{rules_1_conditions_operator}}\",
\"consecutive_periods\": {{rules_1_conditions_consecutive_periods}}
},
\"actions\": {
\"type\": \"{{rules_1_actions_type}}\",
\"parameters\": {
\"boost_recent\": {{rules_1_actions_parameters_boost_recent}},
\"diversity_weight\": {{rules_1_actions_parameters_diversity_weight}},
\"relevance_threshold\": {{rules_1_actions_parameters_relevance_threshold}}
}
},
\"priority\": \"{{rules_1_priority}}\",
\"enabled\": {{rules_1_enabled}}
}
]
}"
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify('{\r\n "rules": [\r\n {\r\n "name": "{{rules_0_name}}",\r\n "description": "{{rules_0_description}}",\r\n "type": "{{rules_0_type}}",\r\n "conditions": {\r\n "metric": "{{rules_0_conditions_metric}}",\r\n "threshold": {{rules_0_conditions_threshold}},\r\n "operator": "{{rules_0_conditions_operator}}",\r\n "windowSize": "{{rules_0_conditions_windowSize}}"\r\n },\r\n "actions": {\r\n "type": "{{rules_0_actions_type}}",\r\n "parameters": {\r\n "cache_ttl": {{rules_0_actions_parameters_cache_ttl}},\r\n "max_results": {{rules_0_actions_parameters_max_results}},\r\n "use_fallback": {{rules_0_actions_parameters_use_fallback}}\r\n }\r\n },\r\n "priority": "{{rules_0_priority}}",\r\n "enabled": {{rules_0_enabled}}\r\n },\r\n {\r\n "name": "{{rules_1_name}}",\r\n "description": "{{rules_1_description}}",\r\n "type": "{{rules_1_type}}",\r\n "conditions": {\r\n "metric": "{{rules_1_conditions_metric}}",\r\n "threshold": {{rules_1_conditions_threshold}},\r\n "operator": "{{rules_1_conditions_operator}}",\r\n "consecutive_periods": {{rules_1_conditions_consecutive_periods}}\r\n },\r\n "actions": {\r\n "type": "{{rules_1_actions_type}}",\r\n "parameters": {\r\n "boost_recent": {{rules_1_actions_parameters_boost_recent}},\r\n "diversity_weight": {{rules_1_actions_parameters_diversity_weight}},\r\n "relevance_threshold": {{rules_1_actions_parameters_relevance_threshold}}\r\n }\r\n },\r\n "priority": "{{rules_1_priority}}",\r\n "enabled": {{rules_1_enabled}}\r\n }\r\n ]\r\n}')
};
fetch('https://api.sophra.org/api/nous/adapt/rules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sophra.org/api/nous/adapt/rules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode('{
"rules": [
{
"name": "{{rules_0_name}}",
"description": "{{rules_0_description}}",
"type": "{{rules_0_type}}",
"conditions": {
"metric": "{{rules_0_conditions_metric}}",
"threshold": {{rules_0_conditions_threshold}},
"operator": "{{rules_0_conditions_operator}}",
"windowSize": "{{rules_0_conditions_windowSize}}"
},
"actions": {
"type": "{{rules_0_actions_type}}",
"parameters": {
"cache_ttl": {{rules_0_actions_parameters_cache_ttl}},
"max_results": {{rules_0_actions_parameters_max_results}},
"use_fallback": {{rules_0_actions_parameters_use_fallback}}
}
},
"priority": "{{rules_0_priority}}",
"enabled": {{rules_0_enabled}}
},
{
"name": "{{rules_1_name}}",
"description": "{{rules_1_description}}",
"type": "{{rules_1_type}}",
"conditions": {
"metric": "{{rules_1_conditions_metric}}",
"threshold": {{rules_1_conditions_threshold}},
"operator": "{{rules_1_conditions_operator}}",
"consecutive_periods": {{rules_1_conditions_consecutive_periods}}
},
"actions": {
"type": "{{rules_1_actions_type}}",
"parameters": {
"boost_recent": {{rules_1_actions_parameters_boost_recent}},
"diversity_weight": {{rules_1_actions_parameters_diversity_weight}},
"relevance_threshold": {{rules_1_actions_parameters_relevance_threshold}}
}
},
"priority": "{{rules_1_priority}}",
"enabled": {{rules_1_enabled}}
}
]
}'),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sophra.org/api/nous/adapt/rules"
payload := strings.NewReader("\"{\\r\\n \\\"rules\\\": [\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_0_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_0_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_0_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_0_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_0_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_0_conditions_operator}}\\\",\\r\\n \\\"windowSize\\\": \\\"{{rules_0_conditions_windowSize}}\\\"\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_0_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"cache_ttl\\\": {{rules_0_actions_parameters_cache_ttl}},\\r\\n \\\"max_results\\\": {{rules_0_actions_parameters_max_results}},\\r\\n \\\"use_fallback\\\": {{rules_0_actions_parameters_use_fallback}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_0_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_0_enabled}}\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_1_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_1_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_1_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_1_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_1_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_1_conditions_operator}}\\\",\\r\\n \\\"consecutive_periods\\\": {{rules_1_conditions_consecutive_periods}}\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_1_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"boost_recent\\\": {{rules_1_actions_parameters_boost_recent}},\\r\\n \\\"diversity_weight\\\": {{rules_1_actions_parameters_diversity_weight}},\\r\\n \\\"relevance_threshold\\\": {{rules_1_actions_parameters_relevance_threshold}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_1_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_1_enabled}}\\r\\n }\\r\\n ]\\r\\n}\"")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sophra.org/api/nous/adapt/rules")
.header("Content-Type", "application/json")
.body("\"{\\r\\n \\\"rules\\\": [\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_0_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_0_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_0_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_0_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_0_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_0_conditions_operator}}\\\",\\r\\n \\\"windowSize\\\": \\\"{{rules_0_conditions_windowSize}}\\\"\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_0_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"cache_ttl\\\": {{rules_0_actions_parameters_cache_ttl}},\\r\\n \\\"max_results\\\": {{rules_0_actions_parameters_max_results}},\\r\\n \\\"use_fallback\\\": {{rules_0_actions_parameters_use_fallback}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_0_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_0_enabled}}\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_1_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_1_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_1_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_1_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_1_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_1_conditions_operator}}\\\",\\r\\n \\\"consecutive_periods\\\": {{rules_1_conditions_consecutive_periods}}\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_1_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"boost_recent\\\": {{rules_1_actions_parameters_boost_recent}},\\r\\n \\\"diversity_weight\\\": {{rules_1_actions_parameters_diversity_weight}},\\r\\n \\\"relevance_threshold\\\": {{rules_1_actions_parameters_relevance_threshold}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_1_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_1_enabled}}\\r\\n }\\r\\n ]\\r\\n}\"")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sophra.org/api/nous/adapt/rules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "\"{\\r\\n \\\"rules\\\": [\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_0_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_0_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_0_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_0_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_0_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_0_conditions_operator}}\\\",\\r\\n \\\"windowSize\\\": \\\"{{rules_0_conditions_windowSize}}\\\"\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_0_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"cache_ttl\\\": {{rules_0_actions_parameters_cache_ttl}},\\r\\n \\\"max_results\\\": {{rules_0_actions_parameters_max_results}},\\r\\n \\\"use_fallback\\\": {{rules_0_actions_parameters_use_fallback}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_0_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_0_enabled}}\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_1_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_1_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_1_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_1_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_1_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_1_conditions_operator}}\\\",\\r\\n \\\"consecutive_periods\\\": {{rules_1_conditions_consecutive_periods}}\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_1_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"boost_recent\\\": {{rules_1_actions_parameters_boost_recent}},\\r\\n \\\"diversity_weight\\\": {{rules_1_actions_parameters_diversity_weight}},\\r\\n \\\"relevance_threshold\\\": {{rules_1_actions_parameters_relevance_threshold}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_1_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_1_enabled}}\\r\\n }\\r\\n ]\\r\\n}\""
response = http.request(request)
puts response.read_bodyNous > Adaptation
Create Rules
POST
/
nous
/
adapt
/
rules
Create Rules
curl --request POST \
--url https://api.sophra.org/api/nous/adapt/rules \
--header 'Content-Type: application/json' \
--data '
"{\r\n \"rules\": [\r\n {\r\n \"name\": \"{{rules_0_name}}\",\r\n \"description\": \"{{rules_0_description}}\",\r\n \"type\": \"{{rules_0_type}}\",\r\n \"conditions\": {\r\n \"metric\": \"{{rules_0_conditions_metric}}\",\r\n \"threshold\": {{rules_0_conditions_threshold}},\r\n \"operator\": \"{{rules_0_conditions_operator}}\",\r\n \"windowSize\": \"{{rules_0_conditions_windowSize}}\"\r\n },\r\n \"actions\": {\r\n \"type\": \"{{rules_0_actions_type}}\",\r\n \"parameters\": {\r\n \"cache_ttl\": {{rules_0_actions_parameters_cache_ttl}},\r\n \"max_results\": {{rules_0_actions_parameters_max_results}},\r\n \"use_fallback\": {{rules_0_actions_parameters_use_fallback}}\r\n }\r\n },\r\n \"priority\": \"{{rules_0_priority}}\",\r\n \"enabled\": {{rules_0_enabled}}\r\n },\r\n {\r\n \"name\": \"{{rules_1_name}}\",\r\n \"description\": \"{{rules_1_description}}\",\r\n \"type\": \"{{rules_1_type}}\",\r\n \"conditions\": {\r\n \"metric\": \"{{rules_1_conditions_metric}}\",\r\n \"threshold\": {{rules_1_conditions_threshold}},\r\n \"operator\": \"{{rules_1_conditions_operator}}\",\r\n \"consecutive_periods\": {{rules_1_conditions_consecutive_periods}}\r\n },\r\n \"actions\": {\r\n \"type\": \"{{rules_1_actions_type}}\",\r\n \"parameters\": {\r\n \"boost_recent\": {{rules_1_actions_parameters_boost_recent}},\r\n \"diversity_weight\": {{rules_1_actions_parameters_diversity_weight}},\r\n \"relevance_threshold\": {{rules_1_actions_parameters_relevance_threshold}}\r\n }\r\n },\r\n \"priority\": \"{{rules_1_priority}}\",\r\n \"enabled\": {{rules_1_enabled}}\r\n }\r\n ]\r\n}"
'import requests
url = "https://api.sophra.org/api/nous/adapt/rules"
payload = "{
\"rules\": [
{
\"name\": \"{{rules_0_name}}\",
\"description\": \"{{rules_0_description}}\",
\"type\": \"{{rules_0_type}}\",
\"conditions\": {
\"metric\": \"{{rules_0_conditions_metric}}\",
\"threshold\": {{rules_0_conditions_threshold}},
\"operator\": \"{{rules_0_conditions_operator}}\",
\"windowSize\": \"{{rules_0_conditions_windowSize}}\"
},
\"actions\": {
\"type\": \"{{rules_0_actions_type}}\",
\"parameters\": {
\"cache_ttl\": {{rules_0_actions_parameters_cache_ttl}},
\"max_results\": {{rules_0_actions_parameters_max_results}},
\"use_fallback\": {{rules_0_actions_parameters_use_fallback}}
}
},
\"priority\": \"{{rules_0_priority}}\",
\"enabled\": {{rules_0_enabled}}
},
{
\"name\": \"{{rules_1_name}}\",
\"description\": \"{{rules_1_description}}\",
\"type\": \"{{rules_1_type}}\",
\"conditions\": {
\"metric\": \"{{rules_1_conditions_metric}}\",
\"threshold\": {{rules_1_conditions_threshold}},
\"operator\": \"{{rules_1_conditions_operator}}\",
\"consecutive_periods\": {{rules_1_conditions_consecutive_periods}}
},
\"actions\": {
\"type\": \"{{rules_1_actions_type}}\",
\"parameters\": {
\"boost_recent\": {{rules_1_actions_parameters_boost_recent}},
\"diversity_weight\": {{rules_1_actions_parameters_diversity_weight}},
\"relevance_threshold\": {{rules_1_actions_parameters_relevance_threshold}}
}
},
\"priority\": \"{{rules_1_priority}}\",
\"enabled\": {{rules_1_enabled}}
}
]
}"
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify('{\r\n "rules": [\r\n {\r\n "name": "{{rules_0_name}}",\r\n "description": "{{rules_0_description}}",\r\n "type": "{{rules_0_type}}",\r\n "conditions": {\r\n "metric": "{{rules_0_conditions_metric}}",\r\n "threshold": {{rules_0_conditions_threshold}},\r\n "operator": "{{rules_0_conditions_operator}}",\r\n "windowSize": "{{rules_0_conditions_windowSize}}"\r\n },\r\n "actions": {\r\n "type": "{{rules_0_actions_type}}",\r\n "parameters": {\r\n "cache_ttl": {{rules_0_actions_parameters_cache_ttl}},\r\n "max_results": {{rules_0_actions_parameters_max_results}},\r\n "use_fallback": {{rules_0_actions_parameters_use_fallback}}\r\n }\r\n },\r\n "priority": "{{rules_0_priority}}",\r\n "enabled": {{rules_0_enabled}}\r\n },\r\n {\r\n "name": "{{rules_1_name}}",\r\n "description": "{{rules_1_description}}",\r\n "type": "{{rules_1_type}}",\r\n "conditions": {\r\n "metric": "{{rules_1_conditions_metric}}",\r\n "threshold": {{rules_1_conditions_threshold}},\r\n "operator": "{{rules_1_conditions_operator}}",\r\n "consecutive_periods": {{rules_1_conditions_consecutive_periods}}\r\n },\r\n "actions": {\r\n "type": "{{rules_1_actions_type}}",\r\n "parameters": {\r\n "boost_recent": {{rules_1_actions_parameters_boost_recent}},\r\n "diversity_weight": {{rules_1_actions_parameters_diversity_weight}},\r\n "relevance_threshold": {{rules_1_actions_parameters_relevance_threshold}}\r\n }\r\n },\r\n "priority": "{{rules_1_priority}}",\r\n "enabled": {{rules_1_enabled}}\r\n }\r\n ]\r\n}')
};
fetch('https://api.sophra.org/api/nous/adapt/rules', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sophra.org/api/nous/adapt/rules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode('{
"rules": [
{
"name": "{{rules_0_name}}",
"description": "{{rules_0_description}}",
"type": "{{rules_0_type}}",
"conditions": {
"metric": "{{rules_0_conditions_metric}}",
"threshold": {{rules_0_conditions_threshold}},
"operator": "{{rules_0_conditions_operator}}",
"windowSize": "{{rules_0_conditions_windowSize}}"
},
"actions": {
"type": "{{rules_0_actions_type}}",
"parameters": {
"cache_ttl": {{rules_0_actions_parameters_cache_ttl}},
"max_results": {{rules_0_actions_parameters_max_results}},
"use_fallback": {{rules_0_actions_parameters_use_fallback}}
}
},
"priority": "{{rules_0_priority}}",
"enabled": {{rules_0_enabled}}
},
{
"name": "{{rules_1_name}}",
"description": "{{rules_1_description}}",
"type": "{{rules_1_type}}",
"conditions": {
"metric": "{{rules_1_conditions_metric}}",
"threshold": {{rules_1_conditions_threshold}},
"operator": "{{rules_1_conditions_operator}}",
"consecutive_periods": {{rules_1_conditions_consecutive_periods}}
},
"actions": {
"type": "{{rules_1_actions_type}}",
"parameters": {
"boost_recent": {{rules_1_actions_parameters_boost_recent}},
"diversity_weight": {{rules_1_actions_parameters_diversity_weight}},
"relevance_threshold": {{rules_1_actions_parameters_relevance_threshold}}
}
},
"priority": "{{rules_1_priority}}",
"enabled": {{rules_1_enabled}}
}
]
}'),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sophra.org/api/nous/adapt/rules"
payload := strings.NewReader("\"{\\r\\n \\\"rules\\\": [\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_0_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_0_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_0_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_0_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_0_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_0_conditions_operator}}\\\",\\r\\n \\\"windowSize\\\": \\\"{{rules_0_conditions_windowSize}}\\\"\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_0_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"cache_ttl\\\": {{rules_0_actions_parameters_cache_ttl}},\\r\\n \\\"max_results\\\": {{rules_0_actions_parameters_max_results}},\\r\\n \\\"use_fallback\\\": {{rules_0_actions_parameters_use_fallback}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_0_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_0_enabled}}\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_1_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_1_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_1_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_1_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_1_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_1_conditions_operator}}\\\",\\r\\n \\\"consecutive_periods\\\": {{rules_1_conditions_consecutive_periods}}\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_1_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"boost_recent\\\": {{rules_1_actions_parameters_boost_recent}},\\r\\n \\\"diversity_weight\\\": {{rules_1_actions_parameters_diversity_weight}},\\r\\n \\\"relevance_threshold\\\": {{rules_1_actions_parameters_relevance_threshold}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_1_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_1_enabled}}\\r\\n }\\r\\n ]\\r\\n}\"")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sophra.org/api/nous/adapt/rules")
.header("Content-Type", "application/json")
.body("\"{\\r\\n \\\"rules\\\": [\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_0_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_0_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_0_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_0_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_0_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_0_conditions_operator}}\\\",\\r\\n \\\"windowSize\\\": \\\"{{rules_0_conditions_windowSize}}\\\"\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_0_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"cache_ttl\\\": {{rules_0_actions_parameters_cache_ttl}},\\r\\n \\\"max_results\\\": {{rules_0_actions_parameters_max_results}},\\r\\n \\\"use_fallback\\\": {{rules_0_actions_parameters_use_fallback}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_0_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_0_enabled}}\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_1_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_1_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_1_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_1_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_1_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_1_conditions_operator}}\\\",\\r\\n \\\"consecutive_periods\\\": {{rules_1_conditions_consecutive_periods}}\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_1_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"boost_recent\\\": {{rules_1_actions_parameters_boost_recent}},\\r\\n \\\"diversity_weight\\\": {{rules_1_actions_parameters_diversity_weight}},\\r\\n \\\"relevance_threshold\\\": {{rules_1_actions_parameters_relevance_threshold}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_1_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_1_enabled}}\\r\\n }\\r\\n ]\\r\\n}\"")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sophra.org/api/nous/adapt/rules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "\"{\\r\\n \\\"rules\\\": [\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_0_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_0_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_0_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_0_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_0_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_0_conditions_operator}}\\\",\\r\\n \\\"windowSize\\\": \\\"{{rules_0_conditions_windowSize}}\\\"\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_0_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"cache_ttl\\\": {{rules_0_actions_parameters_cache_ttl}},\\r\\n \\\"max_results\\\": {{rules_0_actions_parameters_max_results}},\\r\\n \\\"use_fallback\\\": {{rules_0_actions_parameters_use_fallback}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_0_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_0_enabled}}\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"{{rules_1_name}}\\\",\\r\\n \\\"description\\\": \\\"{{rules_1_description}}\\\",\\r\\n \\\"type\\\": \\\"{{rules_1_type}}\\\",\\r\\n \\\"conditions\\\": {\\r\\n \\\"metric\\\": \\\"{{rules_1_conditions_metric}}\\\",\\r\\n \\\"threshold\\\": {{rules_1_conditions_threshold}},\\r\\n \\\"operator\\\": \\\"{{rules_1_conditions_operator}}\\\",\\r\\n \\\"consecutive_periods\\\": {{rules_1_conditions_consecutive_periods}}\\r\\n },\\r\\n \\\"actions\\\": {\\r\\n \\\"type\\\": \\\"{{rules_1_actions_type}}\\\",\\r\\n \\\"parameters\\\": {\\r\\n \\\"boost_recent\\\": {{rules_1_actions_parameters_boost_recent}},\\r\\n \\\"diversity_weight\\\": {{rules_1_actions_parameters_diversity_weight}},\\r\\n \\\"relevance_threshold\\\": {{rules_1_actions_parameters_relevance_threshold}}\\r\\n }\\r\\n },\\r\\n \\\"priority\\\": \\\"{{rules_1_priority}}\\\",\\r\\n \\\"enabled\\\": {{rules_1_enabled}}\\r\\n }\\r\\n ]\\r\\n}\""
response = http.request(request)
puts response.read_bodyBody
application/json
The body is of type object.
Response
200 - application/json
Successful response

